package com.tencent.wxpay.protocol.response;

import com.tencent.wxpay.protocol.model.RefundQuery;

import java.io.Serializable;
import java.util.List;

/**
 * 查询退款接口返回数据对象
 */
public class RefundQueryResData extends BaseResData implements Serializable {
    private static final long serialVersionUID = -6410617761044873176L;
    //以下字段在return_code 为SUCCESS 的时候有返回
    /**
     * 设备号
     * 必填：否
     * 描述：终端设备号
     */
    private String device_info;
    /**
     * 微信订单号
     * 必填：是
     * 描述：微信订单号
     */
    private String transaction_id;
    /**
     * 商户订单号
     * 必填：是
     * 描述：商户系统内部的订单号
     */
    private String out_trade_no;
    /**
     * 订单金额
     * 必填：是
     * 描述：订单总金额，单位为分，只能为整数，详见<a href="https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_2">支付金额</a>
     */
    private Integer total_fee;
    /**
     * 应结订单金额
     * 必填：否
     * 描述：应结订单金额=订单金额-非充值代金券金额，应结订单金额<=订单金额。
     */
    private Integer settlement_total_fee;
    /**
     * 货币种类
     * 必填：否
     * 描述：订单金额货币类型，符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见<a href="https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_2">货币类型</a>
     */
    private String fee_type;
    /**
     * 现金支付金额
     * 必填：是
     * 描述：现金支付金额，单位为分，只能为整数，详见<a href="https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_2">支付金额</a>
     */
    private Integer cash_fee;
    /**
     * 退款笔数
     * 必填：是
     * 描述：退款记录数
     */
    private Integer refund_count;
    /**
     * 退款资金来源
     * 必填：否
     * 描述：REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款/基本账户
     * REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款
     */
    private String refund_account;
    /**
     * 退款列表
     * 必填：否
     * 描述：退款项列表
     */
    private List<RefundQuery> refundQueries;

    public String getDevice_info() {
        return device_info;
    }

    public void setDevice_info(String device_info) {
        this.device_info = device_info;
    }

    public String getTransaction_id() {
        return transaction_id;
    }

    public void setTransaction_id(String transaction_id) {
        this.transaction_id = transaction_id;
    }

    public String getOut_trade_no() {
        return out_trade_no;
    }

    public void setOut_trade_no(String out_trade_no) {
        this.out_trade_no = out_trade_no;
    }

    public Integer getTotal_fee() {
        return total_fee;
    }

    public void setTotal_fee(Integer total_fee) {
        this.total_fee = total_fee;
    }

    public Integer getSettlement_total_fee() {
        return settlement_total_fee;
    }

    public void setSettlement_total_fee(Integer settlement_total_fee) {
        this.settlement_total_fee = settlement_total_fee;
    }

    public String getFee_type() {
        return fee_type;
    }

    public void setFee_type(String fee_type) {
        this.fee_type = fee_type;
    }

    public Integer getCash_fee() {
        return cash_fee;
    }

    public void setCash_fee(Integer cash_fee) {
        this.cash_fee = cash_fee;
    }

    public Integer getRefund_count() {
        return refund_count;
    }

    public void setRefund_count(Integer refund_count) {
        this.refund_count = refund_count;
    }

    public String getRefund_account() {
        return refund_account;
    }

    public void setRefund_account(String refund_account) {
        this.refund_account = refund_account;
    }

    public List<RefundQuery> getRefundQueries() {
        return refundQueries;
    }

    public void setRefundQueries(List<RefundQuery> refundQueries) {
        this.refundQueries = refundQueries;
    }
}
